package Persistencia.DAO;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;

import Persistencia.Entidad.Deporte;
import Persistencia.Entidad.Usuario;

public class DAOUsuario {
	
	public Usuario getUsuario(int idUsuario) {
		SessionFactory sf = HibernateUtil.getSessionFactory();
	    Session sesion = sf.openSession();
	    sesion.beginTransaction();
	    
	    Usuario usuario = null;
	    
	    try {
	    	usuario = (Usuario) sesion.get(Usuario.class, idUsuario);
	    }
	    catch (Exception ex) {
	    	
	    }
	    finally {
	    	sesion.close();
	    }
	    
	    return usuario;
	}

	public void updateUsuario(Usuario usuario) {
		SessionFactory sf = HibernateUtil.getSessionFactory();
	    Session sesion = sf.openSession();
	    sesion.beginTransaction();
	    
	    try {
	    	sesion.update(usuario);
		    sesion.getTransaction().commit();
	    }
	    catch (Exception ex) {
	    	ex.printStackTrace();
	    }
	    finally {
	    	sesion.close();
	    }
	}

	public Usuario getUsuarioByEmail(String email) {
		SessionFactory sf = HibernateUtil.getSessionFactory();
	    Session sesion = sf.openSession();
	    sesion.beginTransaction();
	    
	    Usuario usuario = null;
	    
	    try {
	    	List<Usuario> resultado = sesion.createCriteria(Usuario.class)
	    			.add(Restrictions.eq("direccionEmail", email))
	    			.list();
	    	
	    	if (!resultado.isEmpty()) {
	    		usuario = resultado.get(0);
	    	}
	    }
	    catch (Exception ex) {
	    	
	    }
	    finally {
	    	sesion.close();
	    }
	    
	    return usuario;
	}
	
}